package com.tbit.uqbike.service.business;

import com.tbit.uqbike.object.pojo.statistics.ExportViolationLog;
import com.tbit.uqbike.object.pojo.statistics.ViolationLog;
import com.tbit.uqbike.object.value.LoginInfo;

import java.util.Date;
import java.util.List;

/**
 * @Author: chen
 * @Description: 运维举报
 * @Date: 创建于 16:10 2020/3/16
 */
public interface ViolationLogService {
    /**
     * 维修记录统计详细
     */
    List<ViolationLog> queryPage(Integer accountId, Integer violationState, Integer reportUserId, String userPhone, String machineNO, Integer violationType, Long startTime, Long endTime, Integer pageNO, Integer rowCount);

    /**
     * 维修记录统计详细
     */
    Integer queryCount(Integer accountId, Integer violationState, Integer reportUserId, String userPhone, String userCode, Integer violationType, Long startTime, Long endTime);

    List<ExportViolationLog> export(Integer accountId, Integer violationState, Integer reportUserId, String userPhone, String userCode, Integer violationType, Long startTime, Long endTime);

    /**
     * 根据id获取运维举报记录
     *
     * @param violationLogId 运维举报记录id
     */
    ViolationLog getById(Integer violationLogId);

    /**
     * 根据id处理运维举报记录
     *
     * @param violationLog 运维举报记录
     */
    void updateById(ViolationLog violationLog);

    /**
     * 处理举报记录
     *
     * @param login          当前登录用户信息
     * @param violationLogId 举报记录id
     * @param handleResult   处理结果 0:驳回 1:通过
     * @param handleDesc     处理内容 如果是通过并回复,这里填回复内容。如果是驳回，这里填驳回原因
     * @param type           1:小程序回复用户 2:拉黑用户
     * @param blockTime      拉黑时间(年-月-日)
     */
    void handle(LoginInfo login, Integer violationLogId, Integer handleResult, String handleDesc, Integer type,
                Date blockTime, String photosUrl);
}
